package cn.iocoder.yudao.module.member.api.frozen;

import cn.iocoder.yudao.module.member.enums.MemberBalanceBizTypeEnum;

import java.math.BigDecimal;

public interface MemberFrozenApi {

    /**
     * 冻结用户余额，并记录冻结明细
     * @param userId 用户ID
     * @param money 冻结金额
     * @param biz 业务类型（如股票买入、订单支付等）
     * @param bizId 业务ID（如订单号、委托单号）
     */
    void freezeUserBalance(Long userId, BigDecimal money, Integer biz, Long bizId);

    /**
     * 解冻用户余额，并更新明细
     * @param userId 用户ID
     * @param biz 业务类型（如股票买入、订单支付等）
     * @param bizId 业务ID（如订单号、委托单号）
     */
    void unfreezeUserBalance(Long userId, Integer biz, Long bizId);

    /**
     * 扣款（从冻结金额中扣除）,并记录到资金明细
     * @param userId 用户ID
     * @param biz 业务类型（如股票买入、订单支付等）
     * @param bizId 业务ID（如订单号、委托单号）
     */
    void deductFrozenBalance(Long userId, MemberBalanceBizTypeEnum biz, Long bizId);

}
